package funcionarios;
import java.util.ArrayList;
import java.util.Iterator;

import GerenciadorDeEscolas.Disciplina;


public class Professor extends Funcionario{
	private ArrayList<String> DisciplinasQuePodeLessionar = new ArrayList<String>();
	private ArrayList<Horario> listaHorariosDisponiveis = new ArrayList<Horario>();
	private ArrayList<Disciplina> DisciplinasQueLessiona = new ArrayList<Disciplina>();

	public Professor(String nome, String cpf, String endereco, String telefone,
			String email, Data dataAdmissao, Data dataPosse) throws Exception {
		super(nome, cpf, endereco, telefone, email, dataAdmissao, dataPosse);
		
	}
	public void addDisciplinas(String disciplina){
		DisciplinasQuePodeLessionar.add(disciplina);
	}
	public ArrayList<String> getDisciplinasQueLessiona(){
		return DisciplinasQuePodeLessionar;
	}
	public void setHorario(Horario horario){
		listaHorariosDisponiveis.add(horario);
	}
	public void addDisciplina(Disciplina disciplina, Horario horario) throws Exception{
		Iterator<String> iteraDisciplina = DisciplinasQuePodeLessionar.iterator();
		Iterator<Horario> iteraHorario = listaHorariosDisponiveis.iterator();
		String disc;
		Horario hora = null;
		boolean flagDisciplina = false;
		boolean flagHorario = false;
		while(iteraDisciplina.hasNext()){
			disc = iteraDisciplina.next();
			if(disc.equals(disciplina.getNome())){
				flagDisciplina = true;
			}
			
		}if(!flagDisciplina){
			throw new Exception("O professor nao lessiona esta disciplina");
		}

		while(iteraHorario.hasNext()){
			hora = iteraHorario.next();
			if(hora.getDia().equals(horario.getDia())){
				if(hora.getHoraI() <= horario.getHoraI() && hora.getHoraF() >= horario.getHoraF()){
					
					flagHorario = true;
				}
			}
		
		}if(!flagHorario){
			throw new Exception("Horario do Professor indisponivel");
		}
		DisciplinasQueLessiona.add(disciplina);
		listaHorariosDisponiveis.remove(hora);
	}
}

